package com.mydemo.admin.mapper;

import com.mydemo.common.pojo.Permission;
import com.mydemo.common.pojo.Role;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @author Last_Island
 * @version 1.0
 */
@Mapper
public interface SysRoleMapper {
    /**
     * 根据角色id获取角色信息
     * @param roleId 角色id
     * @return
     */
    Role getRoleByRoleId(Long roleId);

    /**
     * 根据角色id获取角色权限信息
     * @param roleId 角色id
     * @return
     */
    List<Permission> getRolePermissionByRoleId(Long roleId);

    /**
     * 获取所有角色信息
     * @return 角色信息列表
     */
    List<Role> getRoleList(Role role);

    /**
     * 根据角色key获取角色数量
     * @param roleKey 角色key
     * @return
     */
    int roleKeyCount(String roleKey);

    /**
     * 添加角色
     * @param role 角色信息
     * @return
     */
    int addRole(Role role);

    /**
     * 删除角色
     * @param roleId 角色id
     * @return
     */
    int deleteRole(Long roleId);

    /**
     * 更新角色信息
     * @param role 角色信息
     * @return
     */
    int updateRole(Role role);

    /**
     * 通过role中的permission属性添加角色权限
     * @param role 角色信息
     * @return
     */
    int addRolePermission(Role role);

    /**
     * 通过roleId删除角色权限
     * @param roleId
     * @return
     */
    int deleteRolePermission(Long roleId);
}
